/**
 * 统一校验器
 * @param v
 * @param validate
 * @returns {*}
 * @constructor
 */
var CheckValidator = function (v, validate, bool) {
	var _msg;
	for (var i = 0; i < validate.length; i++) {
		var _type = validate[i].type;

		if(!bool && !validate[i].autoValidate){
			_msg = "clean";
			continue;
		}

		if (_type === "require" && !v) {
			_msg = validate[i].msg ? validate[i].msg : "不能为空";
			break;
		} else if (_type == "mobile") {
			var reg = new RegExp('^1[0-9]{10}$');
			var isNum = reg.test(v);
			if(!isNum || v.length !== 11){
				_msg = validate[i].msg ? validate[i].msg : "手机号码格式错误，请重新输入";
				break;
			}
		} else if (_type == "number") {
			var reg = new RegExp('^[0-9]*$');
			var isNum = reg.test(v);
			if(!isNum){
				_msg = validate[i].msg ? validate[i].msg : "请输入数字";
				break;
			}
		} else if (_type === "mail" && v !== "") {
			var m = /^[a-z0-9._%-]+@([a-z0-9-]+\.)+[a-z]{2,4}$|^1[3|4|5|7|8]\d{9}$/;
			if (!m.test(v)) {
				_msg = validate[i].msg ? validate[i].msg : "邮箱格式不正确";
				break;
			}
		} else if (_type == "fn") {
			if (!validate[i].fn(v)) {
				_msg = validate[i].msg;
				break;
			}
		}
	}
	return _msg;
}

module.exports = CheckValidator;